package com.cleaningcloud.erp.mapper;

import java.util.List;
import com.cleaningcloud.erp.domain.ErpWarehousing;
import com.cleaningcloud.erp.domain.ErpWarehousingDetails;
import com.cleaningcloud.erp.domain.dto.ErpWarehousingDetailsDto;
import com.cleaningcloud.erp.domain.dto.ErpWarehousingDto;
import com.cleaningcloud.erp.domain.vo.ErpWarehousingVo;

/**
 * 采购入库Mapper接口
 * 
 * @author cleaningcloud
 * @date 2024-09-29
 */
public interface ErpWarehousingMapper 
{
    /**
     * 查询采购入库
     * 
     * @param warehousingId 采购入库主键
     * @return 采购入库
     */
    ErpWarehousingVo selectErpWarehousingByWarehousingId(Long warehousingId);

    /**
     * 查询采购入库列表
     * 
     * @param erpWarehousing 采购入库
     * @return 采购入库集合
     */
    List<ErpWarehousingVo> selectErpWarehousingList(ErpWarehousingDto erpWarehousing);

    /**
     * 新增采购入库
     * 
     * @param erpWarehousing 采购入库
     * @return 结果
     */
    int insertErpWarehousing(ErpWarehousing erpWarehousing);

    /**
     * 修改采购入库
     * 
     * @param erpWarehousing 采购入库
     * @return 结果
     */
    int updateErpWarehousing(ErpWarehousing erpWarehousing);

    /**
     * 删除采购入库
     * 
     * @param warehousingId 采购入库主键
     * @return 结果
     */
    int deleteErpWarehousingByWarehousingId(Long warehousingId);

    /**
     * 批量删除采购入库
     * 
     * @param warehousingIds 需要删除的数据主键集合
     * @return 结果
     */
    int deleteErpWarehousingByWarehousingIds(Long[] warehousingIds);

    /**
     * 批量新增采购入库明细
     * @param list
     */
    void batchWarehousingDetailsInsert(List<ErpWarehousingDetails> list);

    /**
     * 修改采购入库明细
     *
     * @param list 采购入库明细
     */
    void updateErpWarehousingDetails(ErpWarehousingDetailsDto erpWarehousingDetailsDto);
}
